#pragma once

#include <string>
#include <windows.h>

class Window
{
public:
	Window(unsigned left, unsigned top, unsigned width, unsigned height, const char* name = "Default window name");
	virtual ~Window();

	virtual LRESULT WndProc(
		HWND hWnd,
		UINT uMsg,
		WPARAM wParam,
		LPARAM lParam );

	void RegisterWindowClass(WNDCLASSEX* pWc = NULL);
	virtual void InitInstance();

	HWND getHWND(){return mhWnd;}
	bool isActive(){return mbActive;}

	static Window* getMainWindow(){return gMainWindow;}
	static Window* gMainWindow;

	unsigned mLeft;
	unsigned mTop;
	unsigned mWidth;
	unsigned mHeight;

	bool mbActive;

	HWND mhWnd;

	std::string mName;

};